$(() => {
  // 基于 $.ajax 进行二次封装，更加适合当前项目场景
  const myAjax = (type, url, data, success) => {
    // cp 默认值为 true
    let contentType = 'application/x-www-form-urlencoded'
    let processData = true
    // 如果参数为 FormData 对象，把 cp 设置为 false
    if (data instanceof FormData) {
      contentType = false
      processData = false
    }
    $.ajax({
      type, // 请求方式
      // 🎯 升级1：自动拼接请求基地址
      url: 'http://localhost:8080/api/v1' + url, // 请求地址
      data, // 请求参数
      // 🎯 升级2：自动添加 token 令牌
      headers: {
        Authorization: localStorage.getItem('dsj_token'),
      },
      // 应用 cp 参数
      contentType,
      processData,
      success,
    })
  }

  // 🎯 把二次封装的 myAjax 函数挂载到全局对象上
  // jq 源码中也是这样把$添加到window对象上的
  window.myAjax = myAjax
})
